// components/camp-product/camp-product.js
const { baseURL } = require("../../utils/request")
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    campProductStatus: {
      type: Boolean,
      value: false
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    campProductStatus: false,
    addList: [], //整体数据
    productName: "",  //商品名称
    productPrice: "", //商品价格
    productDetails: "", //商品详情
    imageUrl: "", //图片
    approve: 1, // 审核
    state: 2, //状态
    fileList: [], //上传图片
  },

  lifetimes: {
    ready() {

    }
  },
  /**
   * 组件的方法列表, 组件中方法不能写在 Data同级，需要写在 methods 中
   */
  methods: {
    //重置数据
    resetData() {
      this.setData({
        productName: "",  //商品名称
        productPrice: "", // 商品价格
        productDetails: "", // 商品详情
        imageUrl: "", // 图片
        approve: 1, // 审核
        state: 2, // 状态
      })
    },
    //添加虚拟数据
    addData(e) {
      console.log("this.data", this.data)
      console.log("this.data.imageUrl", this.data.imageUrl)
      const object = {
        productName: e.detail.value.productName,
        productPrice: e.detail.value.productPrice,
        productDetails: e.detail.value.productDetails,
        imageUrl: this.data.imageUrl
      }
      console.log(object);
      var isEmpty = true;
      Object.keys(object).forEach(function (x) {
        if (object[x] === null || object[x] === "") {
          isEmpty = false;
        }
      });
      if (isEmpty) {
        this.data.addList.push({
          productName: e.detail.value.productName,
          productPrice: e.detail.value.productPrice,
          productDetails: e.detail.value.productDetails,
          imageUrl: this.data.imageUrl
        })
        this.resetData();
        this.onClose();
        this.triggerEvent("sendData", this.data.addList)
      } else {
        wx.showToast({
          title: "信息未填写完整",
          icon: "error",
          duration: 1500
        })
      }
      // console.log(instance.globalData.campData)
      console.log(this.data.addList);
    },
    onClose() {
      this.resetData()
      this.setData({
        campProductStatus: false
      })
    },
   
  // 选择文件后的处理函数，对应van-uploader组件的after-read事件
  afterRead(event) {
    const { file } = event.detail;
    var that = this
    // 简单验证一下file是否存在，确保后续流程正常进行
    if (!file) {
        console.error('未获取到有效的文件信息');
        return;
    }
    // 将临时路径上传到服务器
    let token = wx.getStorageSync('userInfo').token ? wx.getStorageSync('userInfo').token : null
    wx.uploadFile({
      url: `${baseURL}/common/upload`, // 仅为示例，非真实的接口地址
      filePath: file.url,
      name: 'file',
      header: {
        'content-type': 'application/json',
        'Authorization': `Bearer ${token}`,
      },
      formData: { user: 'test' },
     success: (res) => {
        // 调用uploadFile方法返回的res.data数据是字符串需要使用JSON.parse()转换
        const uploadData = JSON.parse(res.data);
        console.log(uploadData, "uploadData")
        console.log(res, "上传成功")
        // 上传成功后，将返回的图片地址保存到本地
        that.setData({
          url: uploadData.fileName,
          imageUrl: uploadData.fileName
        });

        // 回显上传图片
        var _fileList = that.data.fileList
        _fileList.push({
          url: uploadData.url
        })
        that.setData({
          fileList: _fileList
        });

        // 将图片地址保存到本地
        wx.setStorageSync('url', uploadData.url);
      }
    })
  },
    //审核
    toExamine() {
      http.addProduct(this.data).then(res => {
        wx.showToast({
          title: '添加成功待审核',
          icon: 'success',
          duration: 1000
        })
        setTimeout(() => {
          // 返回到上一页
          wx.navigateBack({
            delta: 1,
          })
        }, 1000)
      })
    },
    // 获取商品详情
    getProductInfo() {
      http.getProductDetail(this.data.productId).then(res => {
        this.setData({
          productName: res.data.productName,
          productPrice: res.data.productPrice,
          productDetails: res.data.productDetails,
          imageUrl: res.data.imageurl,
          approve: e.detail.value.approve,
          state: res.data.state
        })
      })
    },
  }
})